package com.ipartek.formacion.ficheros;

import java.io.File;

public class ListarFicheros {

	public static void main(String[] args) {
		System.out.println("Directory of root: ");
		System.out.println("---[F] Folder        [d] Directory ----");
		System.out.println("---------------------------------------\n\n");

		listadoFicheros(".", "");
	}

	/**
	 * Funcion recursiva para listar archivos en un arbol de directorios
	 * 
	 * @param root
	 *            ruta desde la cual vamos a inspeccionar
	 * @param tabulacion
	 *            String de tabulacion para pintar por pantalla los archivos
	 */
	public static void listadoFicheros(String root, String tabulacion) {
		File f1 = new File(root);

		if (f1.isDirectory()) {
			String s[] = f1.list();

			for (int i = 0; i < s.length; i++) {
				File f = new File(root + "/" + s[i]);
				if (f.isDirectory()) {
					System.out.println(tabulacion + "[D] " + s[i]);
					// Llamada recursiva para seguir listando los directorios de
					// una ruta.
					listadoFicheros(root + "/" + f.getName(), tabulacion + "	");
				} else {
					System.out.println(tabulacion + "[F] " + s[i]);

				}
			}
		} else {
			System.out.println(root + " is not a directory");
		}
	}

}
